<template>
	<view>
		<view class="loginLogo">
			<image src="https://gulimall-void.oss-cn-guangzhou.aliyuncs.com/icon/loginLogo.jpg"></image>
		</view>
		<button class="weChatLoginBtn" open-type="getUserInfo" @getuserinfo="getUserInfoAction"
			withCredentials="true">微信登录</button>
		<view class="rule">
			<checkbox :value="agree" @click="agree = !agree" style="transform:scale(0.7)"></checkbox>
			<view @click="show = true">《同意协议》</view>
		</view>
		<u-popup :show="show" closeable="true" @close="show = false">
			<view class="popupTop"></view>
			<scroll-view scroll-y="true" class="list">
				<view class='list-cell'>欢迎使用我们的小程序！在您开始使用之前，请仔细阅读以下登录协议。</view>
				<view class="list-cell">个人信息保护 </view>
				<view class='list-cell'>我们将按照相关法律法规的要求对您的个人信息进行保护，不会向第三方公开或泄露您的个人信息。</view>
				<view class="list-cell">免责声明</view>
				<view class="list-cell">由于互联网的特殊性质，本小程序可能受到各种安全问题的影响，包括但不限于黑客攻击、病毒侵袭等。在此情况下，我们将会采取合理措施进行修复，但对于由此造成的损失，我们不承担任何责任。
				</view>
				<view class="list-cell">协议变更</view>
				<view class="list-cell">我们保留随时修改本协议的权利。如果本协议有任何变更，我们将在本小程序上公布最新版本，并且修改后的协议自公布之日起立即生效。</view>
				<view class="list-cell">其他规定 </view>
				<view class="list-cell">本协议受中华人民共和国法律管辖。如本协议任何条款因与中华人民共和国法律相抵触而无效，则该条款应根据法律规定进行修改，使其符合法律要求，而其他条款则继续有效。</view>
			</scroll-view>
		</u-popup>
	</view>
</template>

<script>
	import webSocket from '@/util/websocket.js'
	export default {
		data() {
			return {
				dataForm: {
					username: '',
					password: ''
				},
				dataRule: {
					'username': {
						required: true,
						message: '请输入用户名'
					},
					'password': {
						required: true,
						message: '请输入密码'
					}
				},
				//登录按钮样式
				LoginStyle: {
					width: '300rpx',
					FontSize: '40rpx'
				},
				show: false,
				agree:false
			}
		},
		methods: {
			//获取用户信息，进行微信登录
			getUserInfoAction(e) {
				console.log(this.agree)
				if (!this.agree) {
					uni.showToast({
						title: '请同意协议',
						icon: 'none'
					})
					return;
				}
				var _this = this;
				wx.showModal({
					title: '温馨提示',
					content: '亲，授权微信登录后才能正常使用小程序功能',
					success(res) {
						//如果用户点击了确定按钮
						if (res.confirm) {
							wx.getUserProfile({
								desc: '获取你的昵称、头像、地区及性别',
								success: res => {
									var userInfo = {}
									userInfo.avatarUrl = res.userInfo.avatarUrl
									userInfo.nickName = res.userInfo.nickName
									wx.login({
										success(res) {
											_this.wxLogin(res.code, userInfo)
										}
									})
								},
								fail: res => {
									//拒绝授权
									wx.showToast({
										title: '您拒绝了请求,不能正常使用小程序',
										icon: 'error',
										duration: 2000
									});
									return;
								}
							});
						} else if (res.cancel) {
							//如果用户点击了取消按钮
							wx.showToast({
								title: '您拒绝了请求,不能正常使用小程序',
								icon: 'error',
								duration: 2000
							});
							return;
						}
					}
				})
			},
			//微信登录
			async wxLogin(code, userInfo) {
				const res = await this.$myRequest({
					url: 'user/auth/wxLogin',
					method: 'post',
					data: {
						code,
						userInfo
					},
				})
				if (res && res.code === 0) {
					const token = res.token;
					uni.setStorageSync('TOKEN', token)
					//webSocket建立连接
					webSocket.connectWebSocket(token)
					uni.switchTab({
						url: '../index/index'
					})
				}
			},
			//提交，校验表单
			submit() {
				this.$refs.uForm.validate().then(res => {
					this.login()
				}).catch(errors => {
					uni.$u.toast('校验失败')
				})
			},
			//用户名+密码登录
			async login() {
				const res = await this.$myRequest({
					url: 'user/auth/login',
					method: 'post',
					data: this.dataForm
				})
				if (res && res.code === 0) {
					uni.setStorageSync('TOKEN', res.token)
					uni.switchTab({
						url: '../index/index'
					})
				}
				uni.showToast({
					icon: 'none',
					title: res.msg
				})
			},
			openInfo() {

			}
		}
	}
</script>

<style lang="scss">
	
	.popupTop{
		height: 100rpx;
	}
	
	.list {
		border-top: solid 1rpx #999999;
		height: 1000rpx
	}
	
	.list-cell {
		display: flex;
		box-sizing: border-box;
		width: 100%;
		padding: 10px 24rpx;
		overflow: hidden;
		color: #323233;
		font-size: 14px;
		line-height: 24px;
		background-color: #fff;
	}

	.loginLogo {
		margin: 100rpx 200rpx 120rpx 200rpx;

		image {
			width: 350rpx;
			height: 350rpx;
		}
	}

	.weChatLoginBtn {
		height: 110rpx;
		margin: 20rpx 220rpx 0 220rpx;
		background-color: #FFB300;
		color: white;
		font-size: 45rpx;
	}

	.rule {
		margin: 20rpx 200rpx 0 200rpx;
		display: flex;

		text {
			color: DodgerBlue;
			font-size: 45rpx;
		}
	}

	.body {
		background-color: #f8f8f8;
	}

	.login {
		background-color: #ffffff;
		flex-direction: column;
		align-items: center;
		position: relative;
		top: 3%;
		width: 90%;
		height: 60%;
		background-color: #FFFFFF;
		border-radius: 20px;

		.title {
			margin: 60rpx 0 20rpx 50rpx;
		}

		.form {
			margin-left: 50rpx;
			margin-right: 50rpx;
		}

		.otherButton {
			display: flex;
			padding: 25rpx 0;
			justify-content: space-around;
			color: #878787;
		}

		.loginButton {
			margin-top: 50rpx;
		}
	}

	.phoneLoginBtn {
		margin-top: 50rpx;
		width: 500rpx;
		height: 70rpx;
		font-size: 40rpx;
		line-height: 80rpx;
		background-color: green;
		color: white;
	}

	.content {
		width: 710rpx;
		margin: 20rpx;

		view {
			margin: 5rpx;
		}
	}
</style>
